package com.cskaoyan._03ex;

import java.io.File;
import java.io.FileFilter;
import java.util.Arrays;

/**
 * @description:
 * @author: 景天
 * @date: 2023/2/17 11:42
 **/
/*
输出某个目录(单级)下的所有java文件,使用过滤器.
使用文件过滤器
3种方式实现
匿名对象
匿名内部类
lambda表达式
 */
public class Demo3 {
    public static void main(String[] args) {
        //创建File对象 ---> 目录
        File dir = new File("D:\\app2");
        // 使用带过滤器的listFiles方法
        // 匿名子类对象
        //File[] files = dir.listFiles(new MyFilter());

        // 匿名内部类
        //File[] files = dir.listFiles(new FileFilter() {
        //    @Override
        //    public boolean accept(File pathname) {
        //        return pathname.getName().endsWith(".jpg");
        //    }
        //
        //});

        // lambda方式
        File[] files = dir.listFiles(pathName -> pathName.getName().endsWith(".jpg"));

        System.out.println(Arrays.toString(files));
    }
}

class MyFilter implements FileFilter{

    @Override
    public boolean accept(File pathname) {
        return pathname.getName().endsWith(".java");
    }
}